1. Field of the Invention
The present invention relates generally to signal measurement systems such as logic analyzers and digital oscilloscopes and, more particularly, to a system and method for defining and grouping signals and buses using a graphical user interface on a signal measurement system.
2. Related Art
Conventional logic analyzers and other signal measurement systems such as digital oscilloscopes allow a user to acquire and display digital signal data from a large number of logic signal (signals), such as those that travel over address, data and control lines of a device under test. A device under test may be a microprocessor, random access memory, or other types of chips or chip sets. A display device generally is used to allow the user to visualize the acquired signal data.
The signals typically are received from the device under test on physical electrical lines referred to as xe2x80x9cchannels.xe2x80x9d The channels may be physically assembled into groups called xe2x80x9cpods.xe2x80x9d The received signals are sampled and digitized to form signal data. Digitizing is typically performed by comparing the voltage magnitude of each of these logic signal samples to a reference voltage threshold to determine the logic state of the signals received at each channel. Sampling may occur at one of a number of selectable rates, generally depending upon the frequency at which the sampled signals change logic states.
The resultant signal data are stored in a signal data memory generally having a fixed size, under the control of a sampling clock. The data typically are stored in a sequential manner so that consecutive signal samples are stored in consecutive memory locations. Due to the quantity of signal data, signal data memory is commonly implemented as a wrap-around buffer.
Selection of the portion of the data that is stored and subsequently presented on a display is determined by a user-defined trigger specification. The trigger specification is specified by two parameters, a trigger condition and a trigger position. The occurrence of the trigger condition indicates that data is to be stored. The trigger position determines how much data is stored before and/or after the trigger condition occurs.
The trigger condition may be specified using occurrences such as shift in a signal value from low to high (rising edge) or a shift from high to low (falling edge). Also, a trigger condition may be specified with reference to a signal state, such as a xe2x80x9clogic highxe2x80x9d state or a xe2x80x9clogic lowxe2x80x9d state. These occurrences or states may be referred to as xe2x80x9ceventsxe2x80x9d for purposes of specifying a trigger condition. Alternatively, a trigger condition may be specified by requiring that a number of events occur simultaneously, or in a specified time sequence. Any of the logic signals received by the logic analyzer may be used to specify a trigger condition. The term xe2x80x9cbusxe2x80x9d conventionally is used to refer to a group of channels that are conceptually grouped together even though they need not be physically grouped together. Thus, for example, a bus may be defined as including channels A, B, and C to assist a designer in comparing and analyzing the signals present on those channels. To this end, the signals conceptually grouped together in the bus often are displayed together on a display device where they may be observed or measured by the designer. These signals may be displayed as waveforms. Also, the values of the signals in the bus at a particular instant, collectively referred to as the xe2x80x9cbus valuexe2x80x9d at that time, may be displayed. For example, the logic analyzer may determine that the value of the signal A at a particular time is the binary value xe2x80x9c0xe2x80x9d the value of the signal B is xe2x80x9c1xe2x80x9d at that time, and the value of the signal C is xe2x80x9c0xe2x80x9d at that time. The bus consisting of those signals may then be said to have the binary value xe2x80x9c010xe2x80x9d which may also be expressed as a hexadecimal value, or a value in any other base.
Buses may be used to specify trigger conditions in a manner analogous to that in which signals are used. For example, a bus xe2x80x9ceventxe2x80x9d may be defined as the occurrence of a bus value xe2x80x9cequal,xe2x80x9d or xe2x80x9cnot equal,xe2x80x9d to a particular value. Referring to the previous example, a bus event for the bus consisting of channels A, B, and C may be defined as xe2x80x9cequals 010.xe2x80x9d This event occurs when channels A, B, and C have the values noted above. In other known variations, a trigger condition may be specified as the occurrence of a bus value within, or, alternatively outside, a specified range of bus values.
After a trigger condition has been specified, the user may initiate the capture of signal samples. A trigger sequencer generally is used to compare each of the signals identified as contributing to the trigger condition to the specified trigger condition. When the trigger sequencer determines that the signal data matches the specified trigger condition, the trigger sequencer determines if trigger position is satisfied. If the trigger position has been selected to indicate that the display should include only signal data collected prior to occurrence of the trigger condition, then data collection typically ceases upon the occurrence of the trigger condition. Conversely, if the trigger position has been selected to indicate that the display should include only signal data collected subsequent to the occurrence of the trigger condition, the signal data memory generally is allowed to fill with data after the occurrence of the trigger condition. Alternatively, the user may chose a trigger position between these two positions, resulting in a data display that includes signal data that occurred both before and after the trigger condition. The signal data then may be sequentially read from the signal data memory and displayed to the user.
There are numerous conventional formats for displaying the signal data to the user. These formats vary depending on, among other things, the number of signals that are displayed, the manner in which signal data are grouped, the time axes used to display the signal data, the manner in which trigger conditions and trigger positions are shown, and so on.
Conventional signal measurement systems typically require the user to open a separate dialog box to specify and to alter the format in which the signal data are displayed. Aspects of the format that the user may wish to alter include, for example, changes in the groupings of signals into buses, renaming of signals and buses, or adding or removing signals or buses from the display. A drawback to these conventional systems is that the dialog box for changing the format of the display obscures the user""s view of the signals that are being manipulated. A second drawback of using dialog boxes to alter the display is that they generally are not intuitive. That is, they typically require that the user learn a particular syntax and learn other techniques for changing the format of the display. Conventional systems thereby generally require that new users invest significant amounts of time learning how to manipulate the display formats. If this learning is not frequently used, it may be forgotten. The user must then re-learn the syntax and other particulars of display formatting at a subsequent time. Even expert and frequent users suffer from the inconvenience and distraction of having to open and operate the display formatting dialogue box separate from the data signal display.
The present invention is directed in one embodiment to a system for displaying one or more lists of signal or bus identifiers on a graphical user interface of a logic analyzer. One of the lists is visually associated with one name of a list of signal or bus names. The system enables a user to graphically select one or more desired identifiers of the one or more lists of signal or bus identifiers. The selection of an identifier in a list visually associated with a name assigns a signal or bus identified by that identifier with the name. The lists of signal or bus identifiers may be visually associated with the signal or bus names by horizontal alignment.
The lists of signal or bus identifiers, together with the lists of names, may be referred to as xe2x80x9chorizontal-selection-lists.xe2x80x9d Graphical user interfaces employing horizontal selection lists may include a display window having three principal areas: a bus/signal-naming area, signal-specification area, and an assignment-count area. The bus/signal-naming area may initially include default entries for the names of all channels in the signal measurement system over which signals may be acquired. This area may also include one or more arbitrarily defined buses. In some implementations, a default name may only be provided for those channels on which the signal measurement system determines that a signal is present.
The user may change any of the bus or signal names in the bus or signal name area. This may be done, for example, to make it more descriptive of the signal that is acquired over the associated channel. This user-defined name may be provided in accordance with any of a variety of known techniques. For example, the may select or click on a name using a mouse or other pointer device, select and delete the default name, and type in a new name, or simply type over the selected default name. The user may also add or delete entries from the name area.
Associated with each of the labels in the bus or signal-name area is a horizontal list, or row, of signal identifiers in the signal-specification area. This association may be accomplished by horizontally aligning a name in the name area with a row of signal identifiers in the signal-identification area. In alternative embodiments, the association may be made by matching colors or highlights, aligning the labels vertically with a column of signal identifiers, providing connector elements, or using other techniques. In some embodiments, there is a signal identifier in each row of the signal-identification area for each of the possible signals that may be acquired over the channels available to the signal measurement system.
The above embodiments are not necessarily inclusive or exclusive of each other and may be combined in any manner that is non-conflicting and otherwise possible, whether they be presented in association with a same, or a different, aspect of the invention. The description of one embodiment is not intended to be limiting with respect to other embodiments. Also, any one or more function, step, operation, or technique described elsewhere in this specification may, in alternative embodiments, be combined with any one or more function, step, operation, or technique described in the summary. Thus, the above embodiments are illustrative rather than limiting.